package com.design.patterns.list.decorator;

/**
 * 被装饰者抽象结构到具体结构的缓冲层
 * 当具体结构实现时如果有相同的处理逻辑，可以提前封装到缓冲层中。避免子类实现重复的逻辑
 * 例如：这里每个饮品子类都需要实现cost方法，而对于具体的子类来说他们单品的价格就是自身的价格即getPrice
 * @author Wangzhiwen
 */
public class Coffee extends Drink {

    @Override
    public String getName() {
        return super.getName() + " " + super.getPrice();
    }

    @Override
    protected float cost() {
        return super.getPrice();
    }
}
